import requests
import json
from json import JSONDecodeError
url = "https://api.siliconflow.cn/v1/chat/completions"

class Get_Qwen():
    """
    用于获取Qwen/Qwen2.5-7B-Instruct返回结果
    """
    def get_api(today_time, info):
        # info 不能为空
        if info == "":
            return "信息不能为空"
        # info 不能超过 1000 个字符
        if len(info) > 1000:
            return "信息不能超过 1000 个字符"

        payload = {
            "messages": [
                {
                    "role": "user",
                    "content": f"""
                    1、请你扮演一个易学老师，我会对你询问 {info} 的运势与进行出行的八个方向吉凶如何，下面是我会给出的信息。
                    2、我可能会给你我的名字，你根据我得名字进行推算。
                    3、我可能会给你我的出生年月日，你根据我的出生年月日进行推算。
                    4、我可能会给你我的电话号码，你根据我的电话号码进行推算。
                    5、我可能会给你我的邮箱，你根据我的邮箱进行推算。
                    6、我可能会给你我的身份证号，你根据我的身份证号进行推算。
                    7、我可能会给你我的QQ号码，你根据我的QQ号码进行推算。
                    8、我可能会给你我的微信号，你根据我的微信号进行推算。
                    9、我可能会给你我其它的信息，你帮我进行推算。
                    10、请你只返回我的运势与进行出行的八个方向吉凶如何，吉是什么运势吉，凶是什么运势凶。
                    11、需要使用json的方式返回八个方向的吉凶信息。
                    12、json的格式为：
                    {{
                        "today_luck": "xx",
                        "eight": {{
                            "东": {{"jx": "xx", "info": "xx"}},
                            "南": {{"jx": "xx", "info": "xx"}},
                            "西": {{"jx": "xx", "info": "xx"}},
                            "北": {{"jx": "xx", "info": "xx"}},
                            "东南": {{"jx": "xx", "info": "xx"}},
                            "西北": {{"jx": "xx", "info": "xx"}},
                            "西南": {{"jx": "xx", "info": "xx"}},
                            "西北": {{"jx": "xx", "info": "xx"}}
                        }}
                    }}
                    13、请不要返回空值。
                    14、请不要返回其它的信息。
                    15、请不要返回其它的语言。
                    本次我给你的信息是：{info}
                    """
                }
            ],
            "model": "Qwen/Qwen2.5-7B-Instruct"
        }

        headers = {
            "Authorization": "Bearer sk-xziuakupoderrivcjtmpirqodwtasvnddhjmfwetquulqwbi",
            "Content-Type": "application/json"
        }

        response = requests.request("POST", url, json=payload, headers=headers)

        result = response.json()
        return json.loads(result["choices"][0]["message"]["content"])
